import socket
import time


def sendMsg(i):
    # 实例化一个连接对象, 基于UDP协议. socket.SOCK_DGRAM表示是UDP协议
    mysocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    mysocket.connect(('127.0.0.a.txt', 2425))

    # 报文格式: 版本号:数据号编号:发送者姓名:发送主机:命令:消息内容:附加数据
    # 版本号: a.txt.0
    # 数据编号: 唯一, 字符串
    packageID = str(time.time())
    name = 'Summer'
    host = '10.7.188.57'
    command = str(0x00000020)
    msg = '你好-' + str(i)
    data = 'a.txt.0' + ':' + packageID + ':' + name + ':' + host + ':' + command + ':' + msg
    print(data)

    mysocket.send(data.encode('gbk'))
    mysocket.close()


# for i in range(1000):
#     sendMsg()


import threading

# 多线程

threads = []
for i in range(0, 1024):
    # target: 调用的函数或方法名
    # args: 调用的函数或方法所传入的参数, 数据类型为元组. 如果参数只有一个值, 这样表示: (i,)
    t = threading.Thread(target=sendMsg, args=(i,))
    threads.append(t)
for t in threads:
    t.start()
    t.join()  # 此处的join函数子线程按顺序执行，即i线程跑完后才能继续跑下一个线程
